package com.jt.util;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.ibatis.annotations.Mapper;
import sun.applet.resources.MsgAppletViewer;

/**
 * @author 张琪
 * @date 2020/12/8
 * @describe 用来处理json中出现的错误
 */
public class ObjectMapperUtil {

    public static final ObjectMapper MAPPER = new ObjectMapper();

    public static String toJson(Object target) {
        try {
            return MAPPER.writeValueAsString(target);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
//            当出现异常时, 因为全局异常类的存在, 可以直接抛出对象
            throw new RuntimeException(e);
        }
    }

    //    因为在字符串转换的过程中, 我们并不知道具体要返回的对象/或者说对象类型太多不能确定, 所以我们需要使用泛型
    public static <T> T toObject(String json, Class<T> target) {

        try {
            return MAPPER.readValue(json, target);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }

    }
}
